package com.grupit.module.user.web.gwt.client.pluggablefeatures.ioc;

import com.google.gwt.user.client.ui.IsWidget;

import es.chaveweb.poZit.client.mvp.widget.PoZit;
import es.chaveweb.poZit.client.mvp.widget.PoZitBoardPanel;
import es.chaveweb.poZit.client.mvp.widget.PoZitBoardPanel.Presenter.ConfirmResponse;
import es.chaveweb.poZit.client.mvp.widget.PoZitData;

public interface NoteBoardView extends IsWidget {

	public interface Presenter extends PoZit.Presenter {
		/**
		 * 
		 * @param x
		 *            Posición X en el tablón dónde crear la nueva nota.
		 * @param y
		 *            Posición Y en el tablón dónde crear la nueva nota.
		 * 
		 * @param targetSystemId
		 *            Si viene a null, se considerá que el destinatario es el
		 *            propio usuario logado.
		 */
		void createPoZit(int x, int y, String targetSystemId);

		void sendToBin(PoZitData toDelete, String targetSystemId, ConfirmResponse confirmResponse);

		void undoSentToBin(String targetSystemId);

		void delete(PoZitData toDelete);

		void clearBin(String targetSystemId);
	}

	public void setPresenter(Presenter presenter);

	public PoZitBoardPanel noteBoardPanel(String forThisTarget);

	public void setLoggedUserPanelTargetSystemId(String loggedUserTargetSystemId);

}
